"""
Плагин для создания qr кодов.

Author: Milinuri Nirvalen
Ver: 1.0 (2)
"""

from chiori import Plugin

import qrcode
from qrcode.exceptions import DataOverflowError

import io


p = Plugin(name='QR-code generator', backend='vk', desc='создание qr-кодов')

@p.command('qr', usage='[text] - создать QR код')
async def genQRCode(event, ctx):
	if ctx.sargs:
		text = ctx.sargs
	else:
		text = 'тут может быть ваш текст)'
		for p in ctx.app.plugins:
			text += f'\n-- {p.pid}'

	try:
		img = qrcode.make(text)
	except DataOverflowError:
		await ctx.message(f'Упс. Слишком длинный текст.')
	else:
		buf = io.BytesIO()
		img.save(buf, format='png')
		buf.seek(0)

		photo = await ctx.upload_photo(b=buf)
		await ctx.message(f'Ваш QR код.',
			attachment=photo)
